One of the primary tasks of a two-dimensional (2-D) graphics library is to take scene data, tessellate it into high-level primitives such as arcs, Bezier curves, and line segments, and rasterize the data for output on a computer display or for storage in a bitmap file format. For speed, the graphics library can offload some stages of the rendering onto a graphics processing unit (GPU). Geometries such as arcs and Bezier curves have typically posed particular challenges to offloading as the GPU normally cannot consume such geometries or can only consume these types of geometries at a high per-pixel cost. Thus, prior to offloading, the central processing unit (CPU) must first translate the arcs and Bezier curves into low-level primitives such as triangles that the GPU can process. This consumes valuable CPU processing power and often causes a bottleneck in the rendering process.